<?php
$this->headScript()->appendFile($this->baseUrl('_js/jquery.metadata/metadata.js'));
$this->headScript()->appendFile($this->baseUrl('_js/jquery.validate/validate.js'));
$this->headScript()->appendFile($this->baseUrl('_js/jquery.validate/additional.methods.js'));
$this->headScript()->appendFile($this->baseUrl('_js/jquery.validate/messages.ptbr.js'));

if (!$this->layout()->isEnabled()) {
	echo $this->headLink();
	echo $this->headScript();
}

/**
 * View para formulário genérico para inserção/alteração no banco de dados
 * @param String $action A url para onde será enviado os dados do formulário
 * @param Zend_Db_Table_Info $infoTabela
 * @param Zend_Db_Table_Row $r OPCIONAL O registro a ser alterado. 
 * @param array $campos OPCIONAL {campo: cabecalho|array} Se o label for numérico, será assumido o nome do campo. Se não for informado, serão exibidos todos os campos do banco de dados.
 */
$campos = $this->campos;
$camposOcultos = array('id', 'ativo', 'registro');
?>
<script type="text/javascript">
var settings = null;
var okPergunta = false;
$(function(){
	var form = $("#moduloForm");
	if (form.length > 0) {
		settings = form.validate({
			errorElement: 'div',
			meta: 'validate',
			submitHandler: function(form) {
				okPergunta = true;
			},
			invalidHandler: function(e) {
				okPergunta = false;
			}
		}).settings;
	}

	// Evita o submit se form nao estiver preenchido corretamente
	form.submit(function (e) {
		if (!okPergunta) {
			e.stopImmediatePropagation();
		}
	});


});	
</script>
<form id="moduloForm" action="<?php echo $this->action; ?>" method="post">
	<fieldset> <!-- Set class to "column-left" or "column-right" on fieldsets to divide the form into columns -->
<?php
foreach ($campos as $campo => $info) {
	if($campos[$campo]['oculto'] || $campos[$campo]['ocultoForm'] || in_array($campo, $camposOcultos)){
		unset($campos[$campo]);
		continue;
	}
?>		
		<p class="<?php echo $campo; ?>">
<?php
	$info['r'] = $this->r;
	try {
		$info['valor'] = (empty($this->r->$campo)) ? $info['valorPadrao'] : $this->r->$campo;
	} catch (Exception $e) {}
	try {
		echo $this->partial('crud/partes/form/' . $info['view'] . '.phtml', $info);
	}
	catch (Exception $e) {
		echo $this->partial('crud/partes/form/texto.phtml', $info);
	}
?>
		</p>
<?php
}
?>
		<p>
			<input class="button" type="submit" value="Salvar" />
		</p>
	</fieldset>
	<div class="clear"></div><!-- End .clear -->
</form>